package br.com.foxinline.servico;

import br.com.foxinline.modelo.Origem;
import java.util.List;
import javax.ejb.Stateless;
import javax.persistence.Query;


/**
 *
 * @author cadomeireles
 */
@Stateless
public class OrigemServico extends ServicoGenerico<Origem> {
    
    public OrigemServico() {
        super(Origem.class);
    }

    public List<Origem> pesquisar(Origem origem) {
        String sql = "select origem from Origem origem where origem.ativo = true";
        
        if (origem.getNome() != null && !origem.getNome().isEmpty()) {
            sql += " and lower(origem.nome) like '%" + origem.getNome().toLowerCase().trim() + "%'";
        }        
        
        if (origem.getDescricao() != null && !origem.getDescricao().isEmpty()) {
            sql += " and lower(origem.descricao) like '%" + origem.getDescricao().toLowerCase().trim() + "%'";
        }
        
        Query query = getEntityManager().createQuery(sql);

        return query.getResultList();
    }
    
    @Override
    public void deletar(Origem origem) {
        origem.setAtivo(false);
        super.atualizar(origem);
    }

    public List<Origem> autocompletar(String query) {
        return buscarPeloNome(query);
    }

    private List<Origem> buscarPeloNome(String query) {
        List<Origem> origens = getEntityManager().createQuery("select origem from " + Origem.class.getSimpleName() + " origem where lower(origem.nome) like '%" + query.toLowerCase().trim() + "%'").getResultList();
        return origens;        
    }
    
}
